#ifndef __I2C_H
#define __I2C_H

#ifdef __cplusplus
extern "C"
{
#endif
/* Includes ------------------------------------------------------------------*/
#include "MS51_16K.H"

/* Exported types ------------------------------------------------------------*/
/* Exported macro ------------------------------------------------------------*/
#define I2C0 0
#define I2C1 1

#define I2C_R 1
#define I2C_W 0

/* Exported functions ------------------------------------------------------- */
void I2C_Master_Open(unsigned long u32SYSCLK, unsigned long u32I2CCLK);
void I2C_Slave_Open(unsigned char u8SlaveAddress0);
void I2C_Close(void);
void I2C_Interrupt(unsigned char u8I2CStatus);
unsigned char I2C_GetStatus(void);
void I2C_SetSlaveAddrMask(unsigned char u8SlaveNo, unsigned char u8SlaveAddrMask);
void I2C_Timeout(unsigned char u8I2CTRStatus);
void I2C_ClearTimeoutFlag(void);
void I2C_Slave_Address_Mask(unsigned char u8I2CAddMaskStatus, unsigned char u8I2CAddMaskBit);
void I2C0_SI_Check(void);

#ifdef __cplusplus
}
#endif  /* #ifdef __cplusplus */
#endif  /* #ifndef __I2C_H */